iT邦幫忙

DAY 9
1

Ruby on Rails 實戰聖經 - 初心者的30天學習記錄系列 第 9

Ruby on Rails實戰聖經 (09) - 版型 (Layout)

  • 分享至 

  • xImage
  •  

相信一定有些人有發現,為什麼我們編輯的 view.html.erb完全沒有一個html檔案的基本骨幹如

、、等等tag。

這是因為rails預設將這些樣板(如index.html.erb、edit.html.erb⋯⋯等等)套用了一個公用的版型(Layout)

這個Layout是在我們新增這個專案的時候自動產生的,預設的位置為app/views/layouts/application.html.erb,讓我們看看它的內容:

<title>Guestbook</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>



<%= yield %>

其中 中間的 <%= yield %> 這個區塊會取代為我們編輯的內容,其他部分都是固定的。
我們可以修改這個Layout的內容,讓它隨著不同頁面顯示不同資訊,例如:

<title>Guestbook</title>

這邊改成

<title> <%= @page_title || Guestbook %> </title>

並在show這個action設定@page_title的值

def show
@guest = Guest.find(params[:id])
@page_title = @guest.title
end

這樣當我們連到show的頁面時,網頁顯示的title就會變成那個物件的title,而其他沒有給@page_title值的頁面,就會仍然顯示Guestbook。


上一篇
Ruby on Rails實戰聖經 (08) - 修改、刪除
下一篇
Ruby on Rails實戰聖經 (10) - 利用局部樣板及before_filter整理程式碼
系列文
Ruby on Rails 實戰聖經 - 初心者的30天學習記錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言